#include "main_function.h"
#include "ui_main_function.h"

main_function::main_function(QWidget *parent) :
    QWidget(parent),
    ui(new Ui::main_function)
{
    ui->setupUi(this);
    this->setWindowTitle("功能主界面");
    s_home = nullptr ;//智能家具
    o_weather = nullptr ;//天气预报
    m_player = nullptr ;//音乐播放器
//    c_camera = nullptr ;//摄像头
    //智能家具界面显示功能（点击按钮或双击图片）
    connect(ui->widget,&my_mouse::send_DBClick,ui->btn_home,&QPushButton::click);
    connect(ui->btn_home,&QPushButton::clicked,this,[=](){
        if(s_home == nullptr) //判断当前是否初始化，无初始化则初始化
        s_home = new smart_home();
        //显示
        s_home->show();
    });

    //天气预报界面显示功能（点击按钮或双击图片）
    QMovie *movi_2 = new QMovie(":/pic/图片/5.gif");
    ui->weather->setMovie(movi_2);
    movi_2->start();
    ui->weather->setScaledContents(true);

    connect(ui->widget_2,&my_mouse::send_DBClick,ui->btn_weather,&QPushButton::click);
    connect(ui->btn_weather,&QPushButton::clicked,this,[=](){
        if(o_weather == nullptr) //判断当前是否初始化，无初始化则初始化
        o_weather = new weather_online();
        //显示
        o_weather->show();
    });

    //音乐播放器界面显示功能（点击按钮或双击图片）
    connect(ui->widget_3,&my_mouse::send_DBClick,ui->btn_music,&QPushButton::click);
    connect(ui->btn_music,&QPushButton::clicked,this,[=](){
        if(m_player == nullptr) //判断当前是否初始化，无初始化则初始化
        m_player = new music_player();
        //显示
        m_player->show();
    });

    //摄像头界面显示功能（点击按钮或双击图片）
    connect(ui->widget_4,&my_mouse::send_DBClick,ui->btn_camera,&QPushButton::click);
    connect(ui->btn_camera,&QPushButton::clicked,this,[=](){
//        if(c_camera == nullptr)//判断当前是否初始化，无初始化则初始化
        camera *c_camera = new camera();
        //显示
        c_camera->show();
    });

    //返回按钮
    connect(ui->exit,&QPushButton::clicked,this,[=](){
        this->close();
        emit back_home();
    });
}

main_function::~main_function()
{
    delete ui;
}

void main_function::closeEvent(QCloseEvent *)
{
    //如果功能界面关闭，则子界面关闭
    if(s_home != nullptr)//已初始化则关闭
    s_home->close() ;//智能家具关闭

    if(o_weather != nullptr)//已初始化则关闭
    o_weather->close()  ;//天气预报关闭

    if(m_player != nullptr)//已初始化则关闭
    m_player->close() ;//音乐播放器关闭

//    if(c_camera != nullptr)//已初始化则关闭
//    c_camera->close(); //摄像头关闭
}


